package br.com.fiap.dao;

import java.util.List;

import org.hibernate.Session;

import br.com.fiap.entity.Cliente;
import br.com.fiap.entity.ItemPedido;
import br.com.fiap.entity.Pedido;
import br.com.fiap.entity.Produto;

public class DAO {

	@SuppressWarnings("unchecked")
	public List<Cliente> buscaClientes() {
		
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		List<Cliente> result = session.createQuery("from Cliente").list();
		session.getTransaction().commit();
		return result;
		
	}
	
	@SuppressWarnings("unchecked")
	public List<Produto> buscaProduto() {
		
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		List<Produto> result = session.createQuery("from Produto").list();
		session.getTransaction().commit();
		return result;
		
	}
	
	public void adicionarProduto(ItemPedido item) {
		
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		session.save(item);
		session.getTransaction().commit();		
		
	}
	
	
	public void adicionarPedido(Pedido pedido) throws Throwable{
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		session.save(pedido);
		session.getTransaction().commit();	
	}

	@SuppressWarnings("unchecked")
	public List<Pedido> buscarPedido() throws Throwable{
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		List<Pedido> result = session.createQuery("from Pedido").list();
		session.getTransaction().commit();
		return result;
	}
 
}
